*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter','Segoe UI',system-ui,sans-serif;background:#1a1a2e;color:#fff;overflow:hidden;height:100vh}
#game-container{display:flex;height:100vh}

/* Sidebar */
#sidebar{width:300px;background:#0f0f1a;padding:20px;overflow-y:auto;border-right:2px solid #2a2a3a;display:flex;flex-direction:column;gap:16px}
.undo-redo{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:2px solid #2a2a3a}
.patreon-wrapper{position:relative;width:48px;height:48px;flex-shrink:0}
.arrow-btn{width:48px;height:48px;font-size:28px;font-weight:700;background:#2a2a3a;border:none;border-radius:12px;color:#fff;cursor:pointer;transition:all .2s}
.arrow-btn:hover:not(:disabled){background:#3a3a4a;transform:scale(1.05)}
.arrow-btn:disabled{opacity:.3;cursor:not-allowed}

/* Player Portrait */
.player-portrait{text-align:center;padding:15px;background:#2a2a3a;border-radius:16px}
.profile-image{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:12px;border:3px solid #ec489a}
h2{font-size:24px;margin:8px 0 4px}
.subtitle{font-size:12px;color:#aaa}

/* Stat Cards */
.stat-card{background:#1a1a2a;border-radius:12px;padding:14px;border:1px solid #2a2a3a}
.stat-card h3{font-size:14px;color:#ec489a;margin-bottom:12px;letter-spacing:1px}
.stat-item{display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-size:14px}

/* Buttons - ALL main buttons same size */
.action-btn-primary,
.action-btn,
.camera-btn,
.disclaimer-btn,
.next-btn,
.bedroom-action-btn,
.bathroom-action-btn,
.livingroom-action-btn,
.tv-action-btn,
.city-action-btn,
.train-action-btn,
.school-action-btn,
.gym-action-btn,
.cafeteria-action-btn,
.bathroom-school-action-btn,
.mall-action-btn,
.mall-location-action-btn,
.park-action-btn,
.lake-action-btn,
.arthur-room-action-btn,
.sleep-action-btn,
.selfie-action-btn,
.event-action-btn,
.shower-action-btn,
.classroom-action-btn {
    background: #ec489a;
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 14px;
    padding: 12px 24px;
    min-width: 160px;
    text-align: center;
}

/* Hover effect for all main buttons */
.action-btn-primary:hover,
.action-btn:hover,
.camera-btn:hover,
.disclaimer-btn:hover,
.next-btn:hover,
.bedroom-action-btn:hover,
.bathroom-action-btn:hover,
.livingroom-action-btn:hover,
.tv-action-btn:hover,
.city-action-btn:hover,
.train-action-btn:hover,
.school-action-btn:hover,
.gym-action-btn:hover,
.cafeteria-action-btn:hover,
.bathroom-school-action-btn:hover,
.mall-action-btn:hover,
.mall-location-action-btn:hover,
.park-action-btn:hover,
.lake-action-btn:hover,
.arthur-room-action-btn:hover,
.sleep-action-btn:hover,
.selfie-action-btn:hover,
.event-action-btn:hover,
.shower-action-btn:hover,
.classroom-action-btn:hover {
    background: #db2777;
    transform: translateY(-2px);
}

/* Special button variations */
.embrace-btn { background: #f59e0b !important; }
.embrace-btn:hover { background: #d97706 !important; }
.reach-btn, .mutual-btn { background: #8b5cf6 !important; }
.reach-btn:hover, .mutual-btn:hover { background: #7c3aed !important; }
.date-btn { background: #f59e0b !important; }
.date-btn:hover { background: #d97706 !important; }
.nap-btn { background: #f59e0b; }
.nap-btn:hover { background: #d97706; }
.disclaimer-btn.exit { background: #2a2a3a; }
.disclaimer-btn.exit:hover { background: #3a3a4a; }
.event-action-btn.decline-mall-btn { background: #2a2a3a; }
.event-action-btn.decline-mall-btn:hover { background: #3a3a4a; }
.classroom-action-btn.crazy-btn { background: #2a2a3a !important; }
.classroom-action-btn.crazy-btn:hover { background: #3a3a4a !important; }

/* Disabled buttons */
.bedroom-action-btn.disabled,
.school-action-btn.disabled,
.event-action-btn:disabled,
.shower-action-btn:disabled,
.train-action-btn:disabled,
.sleep-action-btn:disabled,
.tv-action-btn:disabled {
    background: #2a2a3a;
    cursor: not-allowed;
    opacity: 0.6;
}
.bedroom-action-btn.disabled:hover,
.school-action-btn.disabled:hover,
.event-action-btn:disabled:hover,
.shower-action-btn:disabled:hover,
.train-action-btn:disabled:hover,
.sleep-action-btn:disabled:hover,
.tv-action-btn:disabled:hover {
    background: #2a2a3a;
    transform: none;
}

/* Back buttons */
.back-btn, .back-phone {
    background: #2a2a3a;
    border: none;
    padding: 12px 24px;
    min-width: 160px;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 14px;
    text-align: center;
}
.back-btn:hover, .back-phone:hover {
    background: #3a3a4a;
    transform: translateY(-2px);
}

/* ========== SAVE/LOAD SLOT BUTTONS (small) ========== */
.slot-action-btn,
.import-btn {
    background: #ec489a;
    border: none;
    border-radius: 8px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 11px;
    padding: 6px 10px;
    min-width: auto;
    width: auto;
}
.slot-action-btn:hover,
.import-btn:hover {
    background: #db2777;
    transform: translateY(-1px);
}
.slot-action-btn.export { background: #f59e0b; }
.slot-action-btn.export:hover { background: #d97706; }
.slot-action-btn.delete { background: #ef4444; }
.slot-action-btn.delete:hover { background: #dc2626; }
.import-btn { background: #2a2a3a; }
.import-btn:hover { background: #3a3a4a; }

/* ========== PHONE BUTTONS (small) ========== */
#phone-app-view button,
.selfie-action-btn,
.send-msg-btn,
.leave-msg-btn,
.send-photo-btn {
    background: #544b50;
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 12px;
    padding: 8px 16px;
    min-width: auto;
    width: auto;
}
#phone-app-view button:hover,
.selfie-action-btn:hover,
.send-msg-btn:hover,
.leave-msg-btn:hover,
.send-photo-btn:hover {
    background: #db2777;
    transform: translateY(-2px);
}
.send-msg-btn { background: #4ade80; }
.send-msg-btn:hover { background: #22c55e; }
.leave-msg-btn { background: #ef4444; }
.leave-msg-btn:hover { background: #dc2626; }
.send-photo-btn { background: #f59e0b; }
.send-photo-btn:hover { background: #d97706; }
.selfie-action-btn.delete { background: #2a2a3a; }
.selfie-action-btn.delete:hover { background: #3a3a4a; }
.selfie-action-btn.back { background: #f59e0b; margin-top: 20px; }
.selfie-action-btn.back:hover { background: #d97706; }

/* Action button containers */
.event-actions,
.shower-actions,
.train-actions,
.sleep-actions,
.tv-actions,
.classroom-actions,
.gym-actions,
.cafeteria-actions,
.bathroom-school-actions,
.mall-location-actions,
.lake-actions,
.arthur-room-actions,
.selfie-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 10px;
}

/* Grid action containers */
.bedroom-actions,
.bathroom-actions,
.livingroom-actions,
.city-actions,
.school-actions,
.mall-actions,
.park-actions {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

/* Responsive */
@media (max-width: 600px) {
    .action-btn-primary, .action-btn, .camera-btn, .disclaimer-btn, .next-btn,
    .bedroom-action-btn, .bathroom-action-btn, .livingroom-action-btn, .tv-action-btn,
    .city-action-btn, .train-action-btn, .school-action-btn, .gym-action-btn,
    .cafeteria-action-btn, .bathroom-school-action-btn, .mall-action-btn,
    .mall-location-action-btn, .park-action-btn, .lake-action-btn, .arthur-room-action-btn,
    .sleep-action-btn, .selfie-action-btn, .event-action-btn, .shower-action-btn,
    .classroom-action-btn, .back-btn, .back-phone {
        padding: 10px 16px;
        min-width: 130px;
        font-size: 12px;
    }
    .bedroom-actions, .bathroom-actions, .livingroom-actions, .city-actions,
    .school-actions, .mall-actions, .park-actions {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    }
}
/* Room Containers */
.bedroom-container,.bathroom-container,.livingroom-container,.story-container,.mirror-container,.shower-container,.tv-container,.city-container,.train-container,.school-container,.classroom-container,.gym-container,.cafeteria-container,.bathroom-school-container,.mall-container,.mall-location-container,.park-container,.lake-container,.arthur-room-container,.event-container,.sleep-container,.wardrobe-container,.disclaimer-container,.phone-app-container{max-width:800px;margin:0 auto;padding:20px}
.bedroom-image,.bathroom-image,.livingroom-image,.story-image,.tv-image,.city-image,.train-image,.school-image,.classroom-image,.gym-image,.cafeteria-image,.bathroom-school-image,.mall-image,.mall-location-image,.park-image,.lake-image,.arthur-room-image,.event-image,.sleep-image,.selfie-image{width:100%;height:250px;object-fit:cover;border-radius:16px;margin-bottom:20px;border:1px solid #ec489a}
.bathroom-image{height:500px}
.story-image{height:300px;margin-bottom:30px}
.tv-image{height:300px}
.city-image{height:300px}
.train-image{height:300px}
.school-image{height:300px}
.classroom-image{height:300px}
.gym-image{height:300px}
.cafeteria-image{height:300px}
.bathroom-school-image{height:300px}
.mall-image{height:300px}
.mall-location-image{height:300px}
.park-image{height:300px}
.lake-image{height:300px}
.arthur-room-image{height:300px}
.event-image{height:350px}
.sleep-image{height:300px}
.park-image-max,.school-image-max,.mall-image-max{width:100%;max-height:500px;object-fit:contain;border-radius:16px;margin-bottom:20px;border:1px solid #ec489a;background:#1a1a2a}

/* Descriptions */
.bedroom-description,.bathroom-description,.livingroom-description,.mirror-description,.shower-description,.tv-description,.story-text,.city-description,.train-text,.school-description,.classroom-text,.gym-description,.cafeteria-description,.bathroom-school-description,.mall-description,.mall-location-description,.park-description,.lake-description,.arthur-room-description,.event-description,.sleep-description,.selfie-description{background:#1a1a2a;padding:20px;border-radius:16px;border:1px solid #2a2a3a;margin-bottom:25px;line-height:1.6;color:#ccc}
.train-text,.classroom-text,.event-description{padding:25px;line-height:1.8;font-size:16px;color:#ddd}
.train-text p,.classroom-text p,.event-description p{margin-bottom:15px}
.train-text em,.classroom-text em{color:#ec489a;font-style:italic}
.bedroom-description h3,.bathroom-description h3,.livingroom-description h3,.city-description h3,.school-description h3,.gym-description h3,.cafeteria-description h3,.bathroom-school-description h3,.mall-description h3,.mall-location-description h3,.park-description h3,.lake-description h3,.arthur-room-description h3{color:#ec489a;margin-bottom:12px;font-size:18px}
.story-text{font-size:16px;margin-bottom:30px}
.story-text p{margin-bottom:15px}

/* Action Grids */
.bedroom-actions,.bathroom-actions,.livingroom-actions,.city-actions,.school-actions,.mall-actions,.park-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.classroom-actions,.gym-actions,.cafeteria-actions,.bathroom-school-actions,.mall-location-actions,.lake-actions,.arthur-room-actions,.selfie-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}

/* Main View */
#main-view{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:25px}
#main-content{flex:1;display:flex;align-items:center;justify-content:center;color:#6a6a7a;font-size:14px}

/* Modals */
.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);z-index:2000;display:flex;align-items:center;justify-content:center}
.modal-content{background:#1a1a2a;border-radius:20px;width:380px;max-height:80vh;overflow-y:auto;border:1px solid #ec489a}
.phone-modal{width:360px;height:600px;display:flex;flex-direction:column}
.save-load-modal{width:500px;max-width:90vw}
.modal-header{padding:15px;display:flex;justify-content:space-between;border-bottom:1px solid #2a2a3a;font-weight:700;color:#ec489a}
.close-modal,.close-relationships-modal{background:0 0;border:none;color:#fff;font-size:20px;cursor:pointer}
.video-credit{font-size:13px;color:#555;text-align:center;padding:2px 6px 6px;font-style:italic}
.modal-body{padding:20px}
.modal-body div{padding:10px;border-bottom:1px solid #2a2a3a;display:flex;justify-content:space-between}
.modal-footer{padding:15px;border-top:1px solid #2a2a3a;display:flex;justify-content:flex-end}

/* Autosave section */
.autosave-section{display:flex;justify-content:center;padding:20px 20px 0}
.slot-card.autosave{border-color:#f59e0b;min-width:280px;max-width:380px;width:100%}
.slot-card.autosave:hover{border-color:#fbbf24}
.slot-number.autosave{color:#f59e0b}

/* Slots Grid */
.slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:20px}
.slot-card{background:#2a2a3a;border-radius:12px;padding:15px;cursor:pointer;transition:all .2s;border:1px solid #3a3a4a}
.slot-card:hover{background:#3a3a4a;transform:translateY(-2px);border-color:#ec489a}
.slot-number{font-size:18px;font-weight:700;color:#ec489a;margin-bottom:8px}
.slot-info{font-size:12px;color:#aaa;margin-top:8px}
.slot-actions{display:flex;gap:8px;margin-top:10px}
.slot-action-btn{padding:6px 12px;font-size:12px;flex:1}
.slot-action-btn.export{background:#f59e0b}
.slot-action-btn.export:hover{background:#d97706}
.slot-empty{color:#6a6a7a;text-align:center;padding:20px;font-size:12px}
.import-btn{background:#2a2a3a;border:none;padding:10px 20px;border-radius:8px;color:#fff;cursor:pointer;font-size:14px}
.import-btn:hover{background:#3a3a4a}

/* Phone Apps */
.phone-apps-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;padding:20px;flex:1}
.app-icon{background:#2a2a3a;padding:20px;text-align:center;border-radius:16px;cursor:pointer;transition:.2s;font-size:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.app-icon:hover{background:#3a3a4a;transform:scale(1.02)}
.app-icon span{font-size:12px;color:#fff}
#phone-app-view{padding:20px;overflow-y:auto;flex:1}
#phone-app-view button{margin-top:15px;width:100%}

/* Messages */
.message-conversation{background:#1a1a2a;border-radius:16px;padding:15px;margin-top:10px;height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.message-sender{color:#3b82f6;font-weight:700;margin-bottom:5px;font-size:12px}
.message-bubble{background:#2a2a3a;padding:10px 12px;border-radius:12px;color:#fff;line-height:1.4;max-width:85%;word-wrap:break-word}
.my-message{background:#ec489a;margin-left:auto}
.message-time{font-size:10px;color:#6a6a7a;margin-top:2px;text-align:right}
.message-buttons{display:flex;gap:15px;justify-content:center;margin-top:15px}
.send-msg-btn{background:#4ade80}
.send-msg-btn:hover{background:#22c55e}
.leave-msg-btn{background:#565151}
.leave-msg-btn:hover{background:#595050}
.send-photo-btn{background:#f59e0b}
.send-photo-btn:hover{background:#d97706}
.message-bubble img{width:100%;border-radius:12px;display:block}
.message-bubble video{width:100%;border-radius:12px;display:block}

/* Disclaimer */
.disclaimer-container{max-width:500px;text-align:center}
.disclaimer-title{color:#ec489a;font-size:24px;margin-bottom:20px}
.disclaimer-text{color:#ccc;line-height:1.6;margin-bottom:30px;font-size:14px;text-align:left}
.disclaimer-buttons{display:flex;gap:15px;justify-content:center}

/* Wardrobe */
.wardrobe-container{text-align:center}
.wardrobe-container h3{color:#ec489a;margin:20px 0;font-size:24px}
.outfit-options{display:flex;flex-direction:column;gap:20px;margin-top:20px}
.outfit-option{background:#1a1a2a;border-radius:16px;padding:15px;border:1px solid #2a2a3a;transition:all .2s}
.outfit-option:hover{border-color:#ec489a;transform:translateX(5px)}
.outfit-thumb{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:12px}
.outfit-btn{background:#ec489a;border:none;padding:12px;border-radius:12px;color:#fff;font-weight:700;cursor:pointer;transition:all .2s;font-size:16px;width:100%}
.outfit-btn:hover{background:#db2777;transform:scale(1.02)}

/* Videos */
.shower-video,.shower-gif,.train-video{width:100%;max-height:400px;border-radius:16px;margin-bottom:20px;border:1px solid #ec489a;background:#000}
.mirror-image{width:100%;max-height:500px;object-fit:contain;border-radius:16px;margin-bottom:20px;border:1px solid #ec489a;background:#1a1a2a}
.classroom-image[src="img/erectionOlivier.jpg"]{height:400px}

/* Animations */
.shower-video-blur{opacity:0;animation:blurAppear 4s ease-in forwards}
.event-image-blur{opacity:0;animation:blurAppear 3s ease-in forwards}
@keyframes blurAppear{0%{opacity:0;filter:blur(20px)}50%{opacity:.5;filter:blur(10px)}100%{opacity:1;filter:blur(0);animation:none}}
.event-image-stable,.shower-video-stable{opacity:1;filter:blur(0);animation:none}
@keyframes colorChange{0%{color:#ec489a}33%{color:#f59e0b}66%{color:#8b5cf6}100%{color:#ec489a}}
.sucker-text{animation:colorChange 2s infinite alternate}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
.notification{position:fixed;top:20px;right:20px;background:#ec489a;padding:12px 20px;border-radius:12px;animation:slideIn .3s;z-index:3000;max-width:300px}
.hidden{display:none!important}
.hidden-btn{display:none}

/* Scrollbar */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:#1a1a2e}
::-webkit-scrollbar-thumb{background:#ec489a;border-radius:10px}

/* Location Placeholder */
.location-placeholder{max-width:500px;margin:0 auto;padding:40px;text-align:center;background:#1a1a2a;border-radius:16px;border:1px solid #2a2a3a}
.placeholder-text{color:#aaa;margin-top:20px}
.school-placeholder{max-width:500px;margin:0 auto;padding:40px;text-align:center;background:#1a1a2a;border-radius:16px;border:1px solid #2a2a3a}

/* Special Buttons */
.embrace-btn{background:#f59e0b!important}
.embrace-btn:hover{background:#d97706!important}
.reach-btn,.mutual-btn{background:#8b5cf6!important}
.reach-btn:hover,.mutual-btn:hover{background:#7c3aed!important}
.date-btn{background:#f59e0b!important}
.date-btn:hover{background:#d97706!important}
.classroom-action-btn.use-mouth-btn{background:#ec489a!important}
.classroom-action-btn.crazy-btn{background:#2a2a3a!important}
.classroom-action-btn.crazy-btn:hover{background:#3a3a4a!important}

/* Text Colors */
.sophie-speak,.sophie-thought{color:#ec489a}
.sophie-thought{font-style:italic}
.manager-speak{color:#4ade80}
.arthur-talks{color:#f97316;font-weight:500}
.stranger-speak{color:#a855f7}
.olivier-speak{color:#3b82f6}
.girl1-speak{color:#f59e0b}
.girl2-speak{color:#10b981}
.girl3-speak{color:#8b5cf6}
.aria-speak{color:#14b8a6}
.teacher-text{color:#3b82f6}

/* Phone Call Modal */
.phone-call-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.95);z-index:3000;display:flex;align-items:center;justify-content:center}
.phone-call-content{background:#1a1a2a;border-radius:40px;width:320px;padding:30px 20px;text-align:center;border:1px solid #ec489a;box-shadow:0 0 30px rgba(236,72,154,.3)}
.call-avatar{width:120px;height:120px;border-radius:60px;object-fit:cover;margin-bottom:15px;border:3px solid #ec489a}
.call-name{font-size:24px;font-weight:700;color:#fff;margin-bottom:5px}
.call-status{font-size:14px;color:#4ade80;margin-bottom:25px}
.call-buttons{display:flex;gap:20px;justify-content:center}
.call-answer-btn{background:#4ade80;border:none;width:70px;height:70px;border-radius:35px;font-size:30px;cursor:pointer;transition:all .2s;color:#fff}
.call-answer-btn:hover{background:#22c55e;transform:scale(1.05)}
.call-decline-btn{background:#ef4444;border:none;width:70px;height:70px;border-radius:35px;font-size:30px;cursor:pointer;transition:all .2s;color:#fff}
.call-decline-btn:hover{background:#dc2626;transform:scale(1.05)}

/* Feed Styles */
.feed-stats{background:#1a1a2a;padding:15px;border-radius:12px;margin-bottom:20px;border:1px solid #2a2a3a}
.feed-post{background:#2a2a3a;padding:15px;border-radius:12px;margin-bottom:10px;text-align:left}
.feed-comment{font-size:12px;color:#aaa;margin-top:5px;margin-left:10px}
.empty-feed{color:#6a6a7a;padding:20px}

/* Responsive */
@media (max-width:600px){
.event-action-btn,.shower-action-btn,.train-action-btn,.sleep-action-btn,.tv-action-btn{padding:10px 16px;min-width:120px;font-size:12px}
.event-actions,.shower-actions,.train-actions,.sleep-actions,.tv-actions{gap:10px}
.event-actions:has(button:only-child) .event-action-btn,.shower-actions:has(button:only-child) .shower-action-btn,.train-actions:has(button:only-child) .train-action-btn{min-width:160px}
}

/* Event images and videos - centered */
.event-image,
.event-image-blur,
.event-image-stable,
.park-image-max,
.school-image-max,
.mall-image-max,
.shower-video,
.shower-video-blur,
.shower-video-stable,
.train-video {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* Specific fix for partykiss.gif and similar */
.event-image-blur,
.event-image-stable {
    display: block;
    margin: 0 auto 20px auto;
    max-width: 100%;
    object-fit: contain;
}

/* Container for any video or image content */
.video-container,
.image-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-bottom: 20px;
}

/* For the event container images */
.event-container .event-image,
.event-container .event-image-stable {
    display: block;
    margin: 0 auto 20px auto;
    text-align: center;
}

/* For the letsTryItOutPart5 specific GIF */
#animated-gif.event-image-blur {
    display: block;
    margin: 0 auto 20px auto;
    width: auto;
    max-width: 100%;
}

.in-here-btn {
    background: #ef4444 !important;
}

.in-here-btn:hover {
    background: #dc2626 !important;
}

.take-out-btn {
    background: #f59e0b !important;
}

.take-out-btn:hover {
    background: #d97706 !important;
}

/* Phone button with unread message */
#phone-btn {
    position: relative;
    transition: all 0.3s ease;
}

#phone-btn.unread {
    animation: phonePulse 1.5s infinite;
    background: linear-gradient(135deg, #ec489a, #f59e0b);
    box-shadow: 0 0 15px rgba(236, 72, 154, 0.5);
}

#phone-btn.unread:hover {
    transform: scale(1.05);
}

@keyframes phonePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(236, 72, 154, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(236, 72, 154, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(236, 72, 154, 0);
    }
}

/* Opcjonalnie: czerwona kropka zamiast animacji */
#phone-btn.unread::after {
    content: "!";
    position: absolute;
    top: -8px;
    right: -8px;
    background: #ef4444;
    color: white;
    font-size: 12px;
    font-weight: bold;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: blink 1s infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Avatar outfit panel */
#profile-image {
    cursor: pointer;
    transition: box-shadow 0.2s, transform 0.2s;
}
#profile-image:hover {
    box-shadow: 0 0 0 4px rgba(236,72,154,0.5);
    transform: scale(1.04);
}

.avatar-outfit-panel {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: #1a1a2e;
    border: 1px solid #3a3a4a;
    border-radius: 16px;
    padding: 16px;
    z-index: 2000;
    width: 280px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.6);
}

.avatar-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    color: #ec489a;
    font-weight: 700;
    font-size: 14px;
}

#avatar-panel-close {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 4px;
}
#avatar-panel-close:hover { color: #fff; }

.avatar-panel-outfits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.avatar-outfit-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 6px 4px;
    border-radius: 10px;
    border: 2px solid transparent;
    transition: all 0.15s;
}
.avatar-outfit-item:hover {
    background: #2a2a3a;
    border-color: #ec489a;
}
.avatar-outfit-item.avatar-outfit-active {
    border-color: #ec489a;
    background: #2a2a3a;
}
.avatar-outfit-item img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 4px;
}
.avatar-outfit-item span {
    font-size: 10px;
    color: #ccc;
    text-align: center;
}

.avatar-panel-underwear {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #3a3a4a;
}
.avatar-underwear-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 6px;
    border-radius: 10px;
    border: 2px solid transparent;
    flex: 1;
    transition: all 0.15s;
}
.avatar-underwear-item:hover {
    background: #2a2a3a;
    border-color: #f59e0b;
}
.avatar-underwear-item img {
    width: 50px;
    height: 50px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 4px;
}
.avatar-underwear-item span {
    font-size: 10px;
    color: #ccc;
    text-align: center;
}

/* Phone app layout fixes */
#phone-app-view {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Message buttons at the bottom */
.message-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: auto;
    margin-bottom: 10px;
    padding-top: 20px;
}

/* Send and Send Photo buttons - full width on mobile */
.send-msg-btn,
.send-photo-btn,
.leave-msg-btn {
    flex: 1;
    max-width: 160px;
    padding: 12px 16px;
    font-size: 14px;
    text-align: center;
}

/* Conversation container - takes remaining space */
.message-conversation {
    background: #1a1a2a;
    border-radius: 16px;
    padding: 15px;
    margin-top: 10px;
    margin-bottom: 10px;
    height: auto;
    min-height: 250px;
    max-height: 350px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

/* Phone modal specific */
.phone-modal .modal-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

#phone-app-view h3 {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #2a2a3a;
}

/* Full width buttons in phone */
#phone-app-view .action-btn,
#phone-app-view .send-msg-btn,
#phone-app-view .send-photo-btn,
#phone-app-view .leave-msg-btn,
#phone-app-view #create-account-btn,
#phone-app-view .camera-btn {
    width: 100%;
    margin-bottom: 8px;
}

#phone-app-view .camera-btn:last-child {
    margin-bottom: 0;
}

/* Conversations list styling */
.conversations-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
    flex: 1;
}

.conversation-item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #2a2a3a;
    padding: 12px;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.conversation-item:hover {
    background: #3a3a4a;
    transform: translateX(5px);
}

/* Dla obrazka sukienki w sidebarze i wardrobe */
.profile-image[src="img/cutedress.webp"] {
    object-fit: cover;
}
/* Wszystkie wideo z tą klasą będą miały ograniczony rozmiar */
.stallreveal-video-blur {
    width: 100%;
    max-width: 800px;
    max-height: 350px;
    object-fit: contain;
    display: block;
    margin: 0 auto 20px auto;
    border-radius: 16px;
    background: #000;
}

/* Dla responsywności na mniejszych ekranach */
@media (max-width: 600px) {
    .stallreveal-video {
        max-width: 100%;
        max-height: 280px;
    }
}

/* Animacja blur dla obu filmików */
.shower-video-blur {
    opacity: 0;
    animation: blurAppear 4s ease-in forwards;
}

.shower-video-stable {
    opacity: 1;
    filter: blur(0px);
    animation: none;
}

@keyframes blurAppear {
    0% {
        opacity: 0;
        filter: blur(20px);
    }
    50% {
        opacity: 0.5;
        filter: blur(10px);
    }
    100% {
        opacity: 1;
        filter: blur(0px);
    }
}

.membership-options {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin: 20px 0;
}

.membership-card {
    background: rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    min-width: 150px;
    border: 1px solid rgba(255,255,255,0.2);
}

.membership-card h4 {
    font-size: 1.2em;
    margin-bottom: 10px;
    color: #f59e0b;
}

.membership-card .price {
    font-size: 1.5em;
    font-weight: bold;
    color: #4ade80;
    margin: 10px 0;
}

.membership-buy-btn {
    background: #f59e0b;
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: bold;
    margin-top: 10px;
}

.membership-buy-btn:hover {
    background: #d97706;
}

.back-gym-btn {
    background: #6a6a7a;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 20px;
}
.instructor-speak {
    color: #8b5cf6;
    font-style: italic;
    margin: 10px 0;
}

/* ========== YOGA STYLES ========== */

.yoga-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.yoga-video {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 16px;
    margin-bottom: 20px;
    border: 1px solid #ec489a;
    background: #000;
}

.yoga-description {
    background: #1a1a2a;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid #2a2a3a;
    margin-bottom: 25px;
    line-height: 1.6;
    color: #ccc;
}

.yoga-description .sophie-thought {
    color: #ec489a;
    font-style: italic;
}

.yoga-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.yoga-action-btn {
    background: #ec489a;
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 14px;
    padding: 12px 24px;
    min-width: 160px;
    text-align: center;
}

.yoga-action-btn:hover {
    background: #db2777;
    transform: translateY(-2px);
}

.yoga-action-btn.attend {
    background: #8b5cf6;
}

.yoga-action-btn.attend:hover {
    background: #7c3aed;
}

/* Responsywność */
@media (max-width: 600px) {
    .yoga-container {
        padding: 15px;
    }
    
    .yoga-video {
        height: 200px;
    }
    
    .yoga-description {
        padding: 15px;
        font-size: 14px;
    }
    
    .yoga-action-btn {
        padding: 10px 16px;
        min-width: 130px;
        font-size: 12px;
    }
    
    .yoga-actions {
        gap: 10px;
    }
}

.yoga-action-btn.stay {
    background: #f59e0b;
}

.yoga-action-btn.stay:hover {
    background: #d97706;
}

.sophie-speak.thrust {
    animation: thrustAnimation 0.35s ease-in infinite;
}

@keyframes thrustAnimation {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(5px);
    }
    100% {
        transform: translateX(0);
    }
}

.sophie-speak.putin {
    animation: thrustAnimation 0.5s ease-in;
}

@keyframes thrustAnimation {
    0% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(5px);
    }
    100% {
        transform: translateX(0);
    }
}

/* Animacja dla linijek dialogowych dziewczyn */
.girl1-speak, .girl2-speak, .girl3-speak {
    opacity: 0;
    transform: translateX(-20px);
    animation: slideInDialog 0.3s ease-out forwards;
}

.girl1-speak {
    animation-delay: 0s;
}

.girl2-speak {
    animation-delay: 0.8s;
}

.girl3-speak {
    animation-delay: 1.6s;
}

/* Kolejne wystąpienie girl2-speak (drugi raz) */
.girl2-speak:not(:first-of-type) {
    animation-delay: 2.4s;
}

@keyframes slideInDialog {
    0% {
        opacity: 0;
        transform: translateX(-20px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.girl1-speak, .girl2-speak, .girl3-speak {
    opacity: 0;
    animation: popIn 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

.girl1-speak { animation-delay: 0.5s; }
.girl2-speak { animation-delay: 1.5s; }
.girl3-speak { animation-delay: 3.5s; }
.girl2-speak:last-of-type { animation-delay: 4.7; }

@keyframes popIn {
    0% {
        opacity: 0;
        transform: scale(0.9) translateX(-15px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateX(0);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* Animacje dla linijek tekstu Sophie */
.fade-line {
    opacity: 0;
    transform: translateX(-15px);
    animation: slideInLine 0.4s ease-out forwards;
}

.fade-line:nth-of-type(1) {
    animation-delay: 2.8s;
}

.fade-line:nth-of-type(2) {
    animation-delay: 3s;
}

.fade-line:nth-of-type(3) {
    animation-delay: 3.2s;
}

.fade-word {
    display: inline-block;
    opacity: 0;
    transform: translateX(-10px);
    animation: slideInWord 0.3s ease-out forwards;
}

.fade-word:first-child {
    animation-delay: 3.4s;
}

.fade-word:last-child {
    animation-delay: 5.8s;
}

@keyframes slideInLine {
    0% {
        opacity: 0;
        transform: translateX(-15px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInWord {
    0% {
        opacity: 0;
        transform: translateX(-10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.yoga-home-btn {
    background: #8b5cf6 !important;
}

.yoga-home-btn:hover {
    background: #7c3aed !important;
}

.daniel-speak {
    color: #10b981;
}

.scroll-top {
    scroll-margin-top: 0;
}

/* Wymuszenie scrollowania na górę przy otwarciu modala/eventu */
.event-container.scroll-to-top,
.event-container {
    scroll-margin-top: 0;
}

/* W pliku CSS dodaj: */

.tv-image[src="img/ihavebfnow.webp"] {
    width: 50%;
    height: auto;
    max-height: none;
    object-fit: contain;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wardrobe-container {
    text-align: center;
}

.wardrobe-container h3 {
    color: #ec489a;
    margin: 20px 0;
    font-size: 24px;
}

.outfit-options {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.outfit-option {
    background: #1a1a2a;
    border-radius: 16px;
    padding: 15px;
    border: 1px solid #2a2a3a;
    transition: all 0.2s;
}

.outfit-option:hover {
    border-color: #ec489a;
    transform: translateX(5px);
}

.outfit-thumb {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 12px;
}

.outfit-btn {
    background: #ec489a;
    border: none;
    padding: 12px;
    border-radius: 12px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 16px;
    width: 100%;
}

.outfit-btn:hover {
    background: #db2777;
    transform: scale(1.02);
}

.back-btn {
    background: #2a2a3a;
    border: none;
    padding: 12px 24px;
    min-width: 160px;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 14px;
    text-align: center;
    margin-bottom: 20px;
}

.back-btn:hover {
    background: #3a3a4a;
    transform: translateY(-2px);
}

.peter-speak {
    color: #ceff2f;
}

.peter-btn {
    background: #ef4444 !important;
}
.peter-btn:hover {
    background: #dc2626 !important;
}

/* W pliku CSS, zaktualizuj style dla galerii: */

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-top: 15px;
    max-height: 400px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 5px;
    scroll-behavior: smooth;
}

/* Pasek przewijania dla galerii */
.gallery-grid::-webkit-scrollbar {
    width: 5px;
}

.gallery-grid::-webkit-scrollbar-track {
    background: #1a1a2a;
    border-radius: 10px;
}

.gallery-grid::-webkit-scrollbar-thumb {
    background: #ec489a;
    border-radius: 10px;
}

.gallery-item {
    background: #2a2a3a;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid #3a3a4a;
}

.gallery-item:hover {
    transform: scale(1.02);
    border-color: #ec489a;
}

.gallery-thumb {
    width: 100%;
    height: 120px;
    object-fit: cover;
    background: #1a1a2a;
}

.gallery-info {
    padding: 8px;
    font-size: 10px;
    color: #aaa;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 4px;
}

/* Responsywność */
@media (max-width: 600px) {
    .gallery-grid {
        max-height: 300px;
    }
    
    .gallery-thumb {
        height: 100px;
    }
}

.dare-btn {
    background: #ef4444 !important;
}
.dare-btn:hover {
    background: #dc2626 !important;
}

.josh-speak {
    color: #d7d43d;
    font-weight: 500;
    margin: 10px 0;
}

/* ========== DRUNK EFFECT ========== */
/* Efekt dla tekstu - rozmycie, lekkie przesunięcie, zmiana koloru */
.drunk-text {
    animation: drunkWobble 0.3s ease-in-out infinite;
    color: #ec489a !important;
    text-shadow: 0 0 5px rgba(245, 158, 11, 0.5);
    display: inline-block;
    transform-origin: center;
}

/* Efekt dla całej ramki - delikatne kołysanie */
.drunk-frame {
    animation: drunkFrame 0.4s ease-in-out infinite;
    border-color: #f59e0b !important;
    box-shadow: 0 0 15px rgba(245, 158, 11, 0.3);
    background: linear-gradient(135deg, rgba(26, 26, 42, 0.95), rgba(26, 26, 42, 0.98));
}

/* Główna animacja kołysania */
@keyframes drunkWobble {
    0% {
        transform: translate(0px, 0px) rotate(0deg);
        filter: blur(0px);
    }
    15% {
        transform: translate(-1px, 1px) rotate(-0.5deg);
        filter: blur(0.3px);
    }
    30% {
        transform: translate(1px, -0.5px) rotate(0.5deg);
        filter: blur(0px);
    }
    45% {
        transform: translate(-0.5px, -1px) rotate(-0.3deg);
        filter: blur(0.2px);
    }
    60% {
        transform: translate(1px, 0.5px) rotate(0.3deg);
        filter: blur(0px);
    }
    75% {
        transform: translate(-1px, -0.5px) rotate(-0.4deg);
        filter: blur(0.3px);
    }
    100% {
        transform: translate(0px, 0px) rotate(0deg);
        filter: blur(0px);
    }
}

/* Animacja dla ramki - wolniejsze kołysanie */
@keyframes drunkFrame {
    0% {
        transform: rotate(0deg);
        border-color: #f59e0b;
    }
    25% {
        transform: rotate(0.3deg);
        border-color: #fbbf24;
    }
    50% {
        transform: rotate(-0.2deg);
        border-color: #f59e0b;
    }
    75% {
        transform: rotate(0.2deg);
        border-color: #fbbf24;
    }
    100% {
        transform: rotate(0deg);
        border-color: #f59e0b;
    }
}

/* Efekt podwójnego widzenia dla tekstu (WYRAŹNIE MOCNIEJSZY) */
.drunk-vision-light {
    animation: doubleVisionLight 0.12s infinite alternate;
    letter-spacing: 0.6px;
}

@keyframes doubleVisionLight {
    0% {
        text-shadow: 1.5px 0 rgba(255, 0, 0, 0.45), -1.5px 0 rgba(0, 255, 0, 0.45);
    }
    100% {
        text-shadow: 2.5px 0 rgba(255, 0, 0, 0.35), -2.5px 0 rgba(0, 255, 0, 0.35);
    }
}

.drunk-vision {
    animation: doubleVision 0.1s infinite alternate;
    letter-spacing: 1px;
    font-weight: 500;
}

@keyframes doubleVision {
    0% {
        text-shadow: 
            2px 0 rgba(255, 0, 0, 0.5),
            -2px 0 rgba(0, 255, 0, 0.4),
            0 0 5px rgba(245, 158, 11, 0.3);
        transform: skewX(0deg);
    }
    25% {
        text-shadow: 
            3px -1px rgba(255, 0, 0, 0.4),
            -1px 2px rgba(0, 255, 0, 0.3),
            0 0 8px rgba(245, 158, 11, 0.4);
        transform: skewX(0.5deg);
    }
    50% {
        text-shadow: 
            1px 2px rgba(255, 0, 0, 0.5),
            -3px -1px rgba(0, 255, 0, 0.4),
            0 0 10px rgba(245, 158, 11, 0.5);
        transform: skewX(-0.3deg);
    }
    75% {
        text-shadow: 
            -2px 1px rgba(255, 0, 0, 0.4),
            2px -2px rgba(0, 255, 0, 0.5),
            0 0 7px rgba(245, 158, 11, 0.4);
        transform: skewX(0.3deg);
    }
    100% {
        text-shadow: 
            2px 0 rgba(255, 0, 0, 0.5),
            -2px 0 rgba(0, 255, 0, 0.4),
            0 0 5px rgba(245, 158, 11, 0.3);
        transform: skewX(0deg);
    }
}

/* Dodatkowy efekt - rozmycie z kolorowymi cieniami dla jeszcze większego efektu */
.drunk-vision-heavy {
    animation: doubleVisionHeavy 0.08s infinite alternate;
    letter-spacing: 1.5px;
    font-weight: 600;
}

@keyframes doubleVisionHeavy {
    0% {
        text-shadow: 
            3px 0 rgba(255, 0, 0, 0.6),
            -3px 0 rgba(0, 255, 0, 0.5),
            2px 2px rgba(0, 0, 255, 0.2),
            0 0 12px rgba(245, 158, 11, 0.5);
        transform: skewX(0deg) translate(0px, 0px);
        filter: blur(0.3px);
    }
    33% {
        text-shadow: 
            2px 2px rgba(255, 0, 0, 0.5),
            -2px -1px rgba(0, 255, 0, 0.6),
            -1px 2px rgba(0, 0, 255, 0.3),
            0 0 15px rgba(245, 158, 11, 0.6);
        transform: skewX(0.8deg) translate(1px, -0.5px);
        filter: blur(0.5px);
    }
    66% {
        text-shadow: 
            -1px 2px rgba(255, 0, 0, 0.6),
            3px -1px rgba(0, 255, 0, 0.5),
            1px -2px rgba(0, 0, 255, 0.4),
            0 0 10px rgba(245, 158, 11, 0.5);
        transform: skewX(-0.5deg) translate(-0.5px, 1px);
        filter: blur(0.4px);
    }
    100% {
        text-shadow: 
            3px 0 rgba(255, 0, 0, 0.6),
            -3px 0 rgba(0, 255, 0, 0.5),
            2px 2px rgba(0, 0, 255, 0.2),
            0 0 12px rgba(245, 158, 11, 0.5);
        transform: skewX(0deg) translate(0px, 0px);
        filter: blur(0.3px);
    }
}

/* Kombinacja dla całej sekwencji pijanej */
.drunk-container {
    animation: drunkFrame 0.4s ease-in-out infinite;
}

.drunk-container .event-description,
.drunk-container .bedroom-description,
.drunk-container .mall-location-description {
    animation: drunkWobble 0.3s ease-in-out infinite;
    border-color: #f59e0b;
    box-shadow: 0 0 15px rgba(245, 158, 11, 0.2);
}

.drunk-container img,
.drunk-container video {
    animation: drunkFrame 0.5s ease-in-out infinite;
    filter: saturate(1.2) contrast(1.1);
}

/* Efekt dla przycisków w pijanym stanie */
.drunk-container button {
    animation: drunkWobble 0.2s ease-in-out infinite;
}

.drunk-container button:hover {
    transform: scale(1.02) rotate(0.5deg);
}

/* Efekt pchnięcia dla tekstu (średni) - mocniejszy, bardziej pijany */
.drunk-vision-thrust {
    animation: doubleVisionThrust 0.2s infinite alternate;
    letter-spacing: 1px;
    display: inline-block;
    font-weight: 500;
}

@keyframes doubleVisionThrust {
    0% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.5), -2px 0 rgba(0, 255, 0, 0.5), 0 0 5px rgba(245, 158, 11, 0.3);
        transform: translateX(0px) skewX(0deg);
    }
    50% {
        text-shadow: 3px 0 rgba(255, 0, 0, 0.6), -3px 0 rgba(0, 255, 0, 0.6), 0 0 8px rgba(245, 158, 11, 0.4);
        transform: translateX(4px) skewX(2deg);
    }
    100% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.4), -2px 0 rgba(0, 255, 0, 0.4), 0 0 5px rgba(245, 158, 11, 0.3);
        transform: translateX(0px) skewX(0deg);
    }
}

/* Efekt pchnięcia dla tekstu (mocny) - BARDZO pijany, chaotyczny */
.drunk-vision-thrust-heavy {
    animation: doubleVisionThrustHeavy 0.08s infinite alternate;
    letter-spacing: 1.5px;
    display: inline-block;
    font-weight: 600;
}

@keyframes doubleVisionThrustHeavy {
    0% {
        text-shadow: 3px 0 rgba(255, 0, 0, 0.7), -3px 0 rgba(0, 255, 0, 0.6), 2px 2px rgba(0, 0, 255, 0.3), 0 0 15px rgba(245, 158, 11, 0.6);
        transform: translateX(0px) skewX(0deg) rotate(0deg);
        filter: blur(0px);
    }
    25% {
        text-shadow: 4px -1px rgba(255, 0, 0, 0.8), -2px 2px rgba(0, 255, 0, 0.7), -1px -1px rgba(0, 0, 255, 0.4), 0 0 20px rgba(245, 158, 11, 0.7);
        transform: translateX(6px) skewX(3deg) rotate(1deg);
        filter: blur(0.5px);
    }
    50% {
        text-shadow: 2px 2px rgba(255, 0, 0, 0.7), -4px -1px rgba(0, 255, 0, 0.8), 3px -1px rgba(0, 0, 255, 0.3), 0 0 18px rgba(245, 158, 11, 0.8);
        transform: translateX(-2px) skewX(-2deg) rotate(-0.5deg);
        filter: blur(0.3px);
    }
    75% {
        text-shadow: -1px 3px rgba(255, 0, 0, 0.8), 3px -2px rgba(0, 255, 0, 0.7), 2px 1px rgba(0, 0, 255, 0.4), 0 0 22px rgba(245, 158, 11, 0.7);
        transform: translateX(5px) skewX(2deg) rotate(0.5deg);
        filter: blur(0.4px);
    }
    100% {
        text-shadow: 3px 0 rgba(255, 0, 0, 0.7), -3px 0 rgba(0, 255, 0, 0.6), 2px 2px rgba(0, 0, 255, 0.3), 0 0 15px rgba(245, 158, 11, 0.6);
        transform: translateX(0px) skewX(0deg) rotate(0deg);
        filter: blur(0px);
    }
}

/* Efekt dla lekkiego upicia (amIDrunk) - trojenie */
.profile-image.drunk {
    animation: drunkTriple 0.3s ease-in-out infinite;
    border-color: #ccbb20;
    box-shadow: 0 0 15px rgba(245, 158, 11, 0.4);
}

@keyframes drunkTriple {
    0% {
        transform: translateX(0px);
        filter: drop-shadow(2px 0 rgba(255, 0, 0, 0.2)) drop-shadow(-2px 0 rgba(0, 255, 0, 0.2));
    }
    50% {
        transform: translateX(1px);
        filter: drop-shadow(3px 0 rgba(255, 0, 0, 0.3)) drop-shadow(-3px 0 rgba(0, 255, 0, 0.3));
    }
    100% {
        transform: translateX(0px);
        filter: drop-shadow(2px 0 rgba(255, 0, 0, 0.2)) drop-shadow(-2px 0 rgba(0, 255, 0, 0.2));
    }
}

/* Efekt dla kompletnego schlania (amIWasted) - mocne trojenie */
.profile-image.drunk-heavy {
    animation: drunkTripleHeavy 0.2s ease-in-out infinite;
    border-color: #c12129;
    box-shadow: 0 0 25px rgba(245, 158, 11, 0.7);
}

@keyframes drunkTripleHeavy {
    0% {
        transform: translateX(0px);
        filter: drop-shadow(3px 0 rgba(255, 0, 0, 0.3)) drop-shadow(-3px 0 rgba(0, 255, 0, 0.3)) drop-shadow(6px 0 rgba(255, 0, 0, 0.15)) drop-shadow(-6px 0 rgba(0, 255, 0, 0.15));
    }
    33% {
        transform: translateX(2px);
        filter: drop-shadow(4px 0 rgba(255, 0, 0, 0.4)) drop-shadow(-4px 0 rgba(0, 255, 0, 0.4)) drop-shadow(8px 0 rgba(255, 0, 0, 0.2)) drop-shadow(-8px 0 rgba(0, 255, 0, 0.2));
    }
    66% {
        transform: translateX(-1px);
        filter: drop-shadow(3px 0 rgba(255, 0, 0, 0.35)) drop-shadow(-3px 0 rgba(0, 255, 0, 0.35)) drop-shadow(7px 0 rgba(255, 0, 0, 0.18)) drop-shadow(-7px 0 rgba(0, 255, 0, 0.18));
    }
    100% {
        transform: translateX(0px);
        filter: drop-shadow(3px 0 rgba(255, 0, 0, 0.3)) drop-shadow(-3px 0 rgba(0, 255, 0, 0.3)) drop-shadow(6px 0 rgba(255, 0, 0, 0.15)) drop-shadow(-6px 0 rgba(0, 255, 0, 0.15));
    }
}

/* Efekt dla lekkiego upicia (amIDrunk) - trojenie tekstu */
.player-portrait h2.drunk {
    animation: textTriple 0.3s ease-in-out infinite;
    color: #ccbb20;
}

@keyframes textTriple {
    0% {
        text-shadow: 1px 0 rgba(255, 0, 0, 0.3), -1px 0 rgba(0, 255, 0, 0.3);
        transform: translateX(0px);
    }
    50% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.4), -2px 0 rgba(0, 255, 0, 0.4);
        transform: translateX(1px);
    }
    100% {
        text-shadow: 1px 0 rgba(255, 0, 0, 0.3), -1px 0 rgba(0, 255, 0, 0.3);
        transform: translateX(0px);
    }
}

/* Efekt dla kompletnego schlania (amIWasted) - mocne trojenie tekstu */
.player-portrait h2.drunk-heavy {
    animation: textTripleHeavy 0.2s ease-in-out infinite;
    color: #c12129;
    letter-spacing: 1px;
}

@keyframes textTripleHeavy {
    0% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.4), -2px 0 rgba(0, 255, 0, 0.4), 4px 0 rgba(255, 0, 0, 0.2), -4px 0 rgba(0, 255, 0, 0.2);
        transform: translateX(0px);
    }
    25% {
        text-shadow: 3px 0 rgba(255, 0, 0, 0.5), -3px 0 rgba(0, 255, 0, 0.5), 6px 0 rgba(255, 0, 0, 0.25), -6px 0 rgba(0, 255, 0, 0.25);
        transform: translateX(2px);
    }
    50% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.45), -2px 0 rgba(0, 255, 0, 0.45), 5px 0 rgba(255, 0, 0, 0.22), -5px 0 rgba(0, 255, 0, 0.22);
        transform: translateX(-1px);
    }
    75% {
        text-shadow: 3px 0 rgba(255, 0, 0, 0.5), -3px 0 rgba(0, 255, 0, 0.5), 7px 0 rgba(255, 0, 0, 0.28), -7px 0 rgba(0, 255, 0, 0.28);
        transform: translateX(1px);
    }
    100% {
        text-shadow: 2px 0 rgba(255, 0, 0, 0.4), -2px 0 rgba(0, 255, 0, 0.4), 4px 0 rgba(255, 0, 0, 0.2), -4px 0 rgba(0, 255, 0, 0.2);
        transform: translateX(0px);
    }
}

.adam-speak {
    color: #fbbf24;
    font-weight: 500;
    margin: 10px 0;
}

.neighbour-speak {
    color: #988ced;
    font-weight: 500;
    margin: 10px 0;
}

/* Remembrances styles */
.remembrances-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 15px;
    max-height: 400px;
    overflow-y: auto;
}

.remembrance-item {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #2a2a3a;
    padding: 12px;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid #3a3a4a;
}

.remembrance-item:hover {
    background: #3a3a4a;
    border-color: #ec489a;
}

.remembrance-icon {
    font-size: 32px;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1a1a2a;
    border-radius: 25px;
}

.remembrance-info {
    flex: 1;
}

.remembrance-title {
    font-weight: bold;
    color: #f59e0b;
    margin-bottom: 4px;
}

.remembrance-desc {
    font-size: 11px;
    color: #aaa;
}

.remembrance-play {
    font-size: 20px;
    color: #4ade80;
}

.remembrance-empty {
    text-align: center;
    padding: 40px 20px;
    color: #6a6a7a;
}

.remembrance-hint {
    font-size: 11px;
    margin-top: 10px;
    color: #4a4a5a;
}

.panties-option {
    border-color: #ec489a !important;
    background: linear-gradient(135deg, #1a1a2a, #2a1a3a);
}

.panties-option:hover {
    border-color: #f59e0b !important;
}

/* Wardrobe two columns */
.wardrobe-two-columns {
    display: flex;
    gap: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.wardrobe-column {
    flex: 1;
    min-width: 250px;
    background: #1a1a2a;
    border-radius: 16px;
    padding: 20px;
    border: 1px solid #2a2a3a;
}

.wardrobe-column h4 {
    color: #ec489a;
    margin-bottom: 20px;
    text-align: center;
    font-size: 18px;
}

.wardrobe-column .outfit-options {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Responsywność */
@media (max-width: 700px) {
    .wardrobe-two-columns {
        flex-direction: column;
        gap: 20px;
    }
    
    .wardrobe-column {
        min-width: auto;
    }
}

.profile-image.no-panties {
    filter: drop-shadow(0 0 4px #ec489a);
    border-color: #ec489a;
    border-width: 2px;
    border-style: solid;
}

/* Dodanie małej ikonki braku majtek w rogu avatara */
.profile-image.no-panties::after {
    content: "🚫👙";
    position: absolute;
    bottom: 5px;
    right: 5px;
    font-size: 18px;
    background: rgba(0,0,0,0.7);
    border-radius: 50%;
    padding: 3px;
    animation: blinkPanties 1s infinite;
}

@keyframes pantiesMissing {
    0% {
        transform: translateX(0px);
        filter: drop-shadow(0 0 5px #ec489a);
    }
    25% {
        transform: translateX(2px);
        filter: drop-shadow(0 0 12px #ec489a);
    }
    50% {
        transform: translateX(-2px);
        filter: drop-shadow(0 0 8px #f59e0b);
    }
    75% {
        transform: translateX(1px);
        filter: drop-shadow(0 0 12px #ec489a);
    }
    100% {
        transform: translateX(0px);
        filter: drop-shadow(0 0 5px #ec489a);
    }
}

@keyframes blinkPanties {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.1);
    }
}

/* Stranger dialog colors - pojawiają się jeden po drugim */
.stranger-speak1 {
    color: #f59e0b;
    font-weight: 500;
    margin: 10px 0;
    opacity: 0;
    transform: translateX(-20px);
    animation: slideInDialog 0.3s ease-out forwards;
}

.stranger-speak2 {
    color: #10b981;
    font-weight: 500;
    margin: 10px 0;
    opacity: 0;
    transform: translateX(-20px);
    animation: slideInDialog 0.3s ease-out forwards;
}

/* Kolejność pojawiania się */
.stranger-speak1 {
    animation-delay: 0s;
}

.stranger-speak2 {
    animation-delay: 0.8s;
}

/* Opcjonalnie - trzecia osoba gdyby była potrzebna */
.stranger-speak3 {
    color: #8b5cf6;
    font-weight: 500;
    margin: 10px 0;
    opacity: 0;
    transform: translateX(-20px);
    animation: slideInDialog 0.3s ease-out forwards;
    animation-delay: 1.6s;
}

@keyframes slideInDialog {
    0% {
        opacity: 0;
        transform: translateX(-20px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ========== MAGIC EFFECT - SUBTELNE FALOWANIE I ROZMYCIE ========== */

/* Efekt dla tekstu - delikatne fioletowe świecenie */
.magic-text {
    animation: magicPulse 2s ease-in-out infinite;
    color: #a855f7 !important;
    text-shadow: 0 0 3px rgba(168, 85, 247, 0.3);
    display: inline-block;
}

/* Efekt dla całej ramki - subtelne falowanie i rozmycie */
.magic-frame {
    animation: magicWave 3s ease-in-out infinite;
    border-color: rgba(168, 85, 247, 0.4);
    box-shadow: 0 0 10px rgba(168, 85, 247, 0.15);
    background: linear-gradient(135deg, rgba(26, 26, 42, 0.95), rgba(32, 26, 42, 0.95));
    backdrop-filter: blur(0px);
    transition: all 0.3s ease;
}

@keyframes magicPulse {
    0% {
        text-shadow: 0 0 2px rgba(168, 85, 247, 0.2);
    }
    50% {
        text-shadow: 0 0 6px rgba(168, 85, 247, 0.4), 0 0 8px rgba(236, 72, 154, 0.2);
    }
    100% {
        text-shadow: 0 0 2px rgba(168, 85, 247, 0.2);
    }
}

@keyframes magicWave {
    0% {
        border-color: rgba(168, 85, 247, 0.3);
        box-shadow: 0 0 5px rgba(168, 85, 247, 0.1);
        backdrop-filter: blur(0px);
        transform: scale(1);
    }
    25% {
        border-color: rgba(168, 85, 247, 0.5);
        box-shadow: 0 0 15px rgba(168, 85, 247, 0.2);
        backdrop-filter: blur(0.3px);
        transform: scale(1.002);
    }
    50% {
        border-color: rgba(168, 85, 247, 0.4);
        box-shadow: 0 0 10px rgba(168, 85, 247, 0.15);
        backdrop-filter: blur(0.2px);
        transform: scale(0.998);
    }
    75% {
        border-color: rgba(168, 85, 247, 0.5);
        box-shadow: 0 0 12px rgba(168, 85, 247, 0.2);
        backdrop-filter: blur(0.4px);
        transform: scale(1.001);
    }
    100% {
        border-color: rgba(168, 85, 247, 0.3);
        box-shadow: 0 0 5px rgba(168, 85, 247, 0.1);
        backdrop-filter: blur(0px);
        transform: scale(1);
    }
}

/* ========== MAGIC FRAME HEAVY (mocniejsze falowanie) ========== */

.magic-frame-heavy {
    animation: magicWaveHeavy 2s ease-in-out infinite;
    border-color: rgba(168, 85, 247, 0.5);
    box-shadow: 0 0 20px rgba(168, 85, 247, 0.25);
    background: linear-gradient(135deg, rgba(26, 26, 42, 0.9), rgba(42, 26, 48, 0.9));
    backdrop-filter: blur(0px);
}

@keyframes magicWaveHeavy {
    0% {
        border-color: rgba(168, 85, 247, 0.4);
        box-shadow: 0 0 8px rgba(168, 85, 247, 0.15);
        backdrop-filter: blur(0px);
        transform: scale(1) translateY(0px);
    }
    33% {
        border-color: rgba(168, 85, 247, 0.6);
        box-shadow: 0 0 25px rgba(168, 85, 247, 0.3);
        backdrop-filter: blur(0.5px);
        transform: scale(1.003) translateY(-1px);
    }
    66% {
        border-color: rgba(168, 85, 247, 0.5);
        box-shadow: 0 0 15px rgba(168, 85, 247, 0.2);
        backdrop-filter: blur(0.3px);
        transform: scale(0.997) translateY(1px);
    }
    100% {
        border-color: rgba(168, 85, 247, 0.4);
        box-shadow: 0 0 8px rgba(168, 85, 247, 0.15);
        backdrop-filter: blur(0px);
        transform: scale(1) translateY(0px);
    }
}

/* ========== MAGIC VISION (podwójne widzenie z magicznymi kolorami) ========== */

.magic-vision-light {
    animation: magicVisionLight 2s ease-in-out infinite alternate;
    letter-spacing: 0.3px;
}

@keyframes magicVisionLight {
    0% {
        text-shadow: 0.5px 0 rgba(168, 85, 247, 0.2), -0.5px 0 rgba(236, 72, 154, 0.2);
    }
    100% {
        text-shadow: 1px 0 rgba(168, 85, 247, 0.35), -1px 0 rgba(236, 72, 154, 0.35);
    }
}

.magic-vision {
    animation: magicVision 2s ease-in-out infinite alternate;
    letter-spacing: 0.6px;
}

@keyframes magicVision {
    0% {
        text-shadow: 1px 0 rgba(168, 85, 247, 0.3), -1px 0 rgba(236, 72, 154, 0.3);
    }
    100% {
        text-shadow: 2px 0 rgba(168, 85, 247, 0.45), -2px 0 rgba(236, 72, 154, 0.45);
    }
}

.magic-vision-heavy {
    animation: magicVisionHeavy 2s ease-in-out infinite alternate;
    letter-spacing: 1px;
    font-weight: 500;
}

@keyframes magicVisionHeavy {
    0% {
        text-shadow: 2px 0 rgba(168, 85, 247, 0.4), -2px 0 rgba(236, 72, 154, 0.4);
    }
    100% {
        text-shadow: 3px 0 rgba(168, 85, 247, 0.6), -3px 0 rgba(236, 72, 154, 0.6);
    }
}

/* ========== MAGIC THRUST ========== */

.magic-thrust {
    animation: magicThrust 0.15s infinite alternate;
    letter-spacing: 0.8px;
    display: inline-block;
}

@keyframes magicThrust {
    0% {
        text-shadow: 1px 0 rgba(168, 85, 247, 0.3), -1px 0 rgba(236, 72, 154, 0.3);
        transform: translateX(0px);
    }
    100% {
        text-shadow: 2px 0 rgba(168, 85, 247, 0.45), -2px 0 rgba(236, 72, 154, 0.45);
        transform: translateX(3px);
    }
}

.magic-thrust-heavy {
    animation: magicThrustHeavy 0.1s infinite alternate;
    letter-spacing: 1.2px;
    display: inline-block;
    font-weight: 500;
}

@keyframes magicThrustHeavy {
    0% {
        text-shadow: 2px 0 rgba(168, 85, 247, 0.4), -2px 0 rgba(236, 72, 154, 0.4);
        transform: translateX(0px);
    }
    100% {
        text-shadow: 3px 0 rgba(168, 85, 247, 0.6), -3px 0 rgba(236, 72, 154, 0.6);
        transform: translateX(5px);
    }
}

/* ========== MAGIC CONTAINER ========== */

.magic-container {
    animation: magicWave 3s ease-in-out infinite;
}

.magic-container-heavy {
    animation: magicWaveHeavy 2s ease-in-out infinite;
}

.magic-container .event-description,
.magic-container .bedroom-description,
.magic-container-heavy .event-description,
.magic-container-heavy .bedroom-description {
    animation: magicPulse 2s ease-in-out infinite;
    border-color: rgba(168, 85, 247, 0.4);
    box-shadow: 0 0 15px rgba(168, 85, 247, 0.1);
}

.magic-container img,
.magic-container video,
.magic-container-heavy img,
.magic-container-heavy video {
    animation: magicWave 3s ease-in-out infinite;
    filter: saturate(1.05) brightness(1.01);
}

/* Bra option styling */
.bra-option {
    border-color: #a855f7 !important;
    background: linear-gradient(135deg, #1a1a2a, #2a1a3a);
}

.bra-option:hover {
    border-color: #ec489a !important;
}

/* Efekt dla avatara gdy brak stanika */
.profile-image.no-bra {
    filter: drop-shadow(0 0 4px #a855f7);
    border-color: #a855f7;
    border-width: 2px;
    border-style: solid;
}

/* Efekt dla avatara gdy brak majtek */
.profile-image.no-panties {
    filter: drop-shadow(0 0 4px #ec489a);
    border-color: #ec489a;
    border-width: 2px;
    border-style: solid;
}

/* Efekt dla avatara gdy brak obu (stanika i majtek) */
.profile-image.no-bra.no-panties {
    filter: drop-shadow(0 0 8px #a855f7) drop-shadow(0 0 8px #ec489a);
    border-color: #ec489a;
    border-width: 2px;
    border-style: solid;
    animation: noUnderwearGlow 0.8s ease-in-out infinite alternate;
}

@keyframes noUnderwearGlow {
    0% {
        filter: drop-shadow(0 0 4px #a855f7) drop-shadow(0 0 4px #ec489a);
        border-color: #ec489a;
    }
    50% {
        filter: drop-shadow(0 0 10px #a855f7) drop-shadow(0 0 10px #ec489a);
        border-color: #a855f7;
    }
    100% {
        filter: drop-shadow(0 0 6px #a855f7) drop-shadow(0 0 6px #ec489a);
        border-color: #ec489a;
    }
}

/* Flash buttons styling */
.flash-btn {
    border: none;
    border-radius: 12px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 14px;
    min-width: 160px;
    text-align: center;
    position: relative;
    overflow: hidden;
    animation: pulse 1.5s infinite;
}

.flash-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.1);
}

/* Flash boobs button - pomarańczowy z falą */
.flash-boobs {
    background: linear-gradient(135deg, #f59e0b, #ea580c);
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.5);
}

.flash-boobs::before {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.8;
}


/* Flash pussy button - różowy z falą */
.flash-pussy {
    background: linear-gradient(135deg, #ec489a, #be185d);
    box-shadow: 0 0 10px rgba(236, 72, 154, 0.5);
}

.flash-pussy::before {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.8;
}

.flash-pussy {
    padding-left: 45px;
}

/* Expose both button - fioletowy z podwójną falą */
.expose-both {
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    box-shadow: 0 0 15px rgba(139, 92, 246, 0.6);
    animation: pulseGlow 1s infinite alternate;
}

.expose-both::before {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.9;
}

.expose-both::after {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.9;
}

.expose-both {
    padding-left: 45px;
    padding-right: 45px;
}

/* Animacje */
@keyframes pulse {
    0% {
        box-shadow: 0 0 5px rgba(255, 255, 255, 0.3);
    }
    50% {
        box-shadow: 0 0 15px rgba(255, 255, 255, 0.6);
    }
    100% {
        box-shadow: 0 0 5px rgba(255, 255, 255, 0.3);
    }
}

@keyframes pulseGlow {
    0% {
        box-shadow: 0 0 10px rgba(139, 92, 246, 0.4);
    }
    100% {
        box-shadow: 0 0 25px rgba(139, 92, 246, 0.8);
    }
}

/* Responsywność */
@media (max-width: 600px) {
    .flash-btn {
        padding: 10px 16px;
        min-width: 140px;
        font-size: 12px;
    }
    
    .flash-boobs {
        padding-left: 40px;
    }
    
    .flash-pussy {
        padding-left: 40px;
    }
    
    .expose-both {
        padding-left: 40px;
        padding-right: 40px;
    }
    
    .flash-boobs::before,
    .flash-pussy::before,
    .expose-both::before {
        left: 12px;
        font-size: 12px;
    }
    
    .expose-both::after {
        right: 12px;
        font-size: 12px;
    }
}

/* Sound toggle button */
.sound-toggle-btn {
    width: 48px;
    height: 48px;
    font-size: 22px;
    background: #2a2a3a;
    border: none;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s, opacity 0.25s ease, transform 0.2s;
    flex-shrink: 0;
}
.sound-toggle-btn:hover { background: #3a3a4a; transform: scale(1.05); }
.sound-toggle-btn.sound-on { background: #1a3a2a; color: #4ade80; }

/* Hide sound button while Patreon is hovered so it doesn't overlap the expanding label */
.undo-redo:has(#patreon-btn:hover) #sound-toggle-btn {
    opacity: 0;
    pointer-events: none;
}

/* Patreon button - wersja z rozwijaniem */
.patreon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0px;
    /* anchored to the right edge of .patreon-wrapper; expands leftward on hover */
    position: absolute;
    right: 0;
    top: 0;
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #ff424d, #ff6b6b);
    border: none;
    border-radius: 16px;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    padding: 10px 0px;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    overflow: hidden;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    z-index: 10;
}

.patreon-btn:hover {
    width: 190px;
    gap: 10px;
    padding: 10px 18px;
    box-shadow: 0 6px 16px rgba(255, 66, 77, 0.4);
}

.patreon-icon {
    width: 26px;
    height: 26px;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
}

.patreon-text {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease 0.1s, visibility 0s linear 0.3s;
    font-size: 13px;
    letter-spacing: 0.5px;
}

.patreon-btn:hover .patreon-text {
    opacity: 1;
    visibility: visible;
}

/* Responsywność */
@media (max-width: 600px) {
    .patreon-wrapper { width: 42px; height: 42px; }
    .patreon-btn {
        width: 42px;
        height: 42px;
        padding: 8px 0px;
    }

    .patreon-btn:hover {
        width: 180px;
        padding: 8px 14px;
    }
    
    .patreon-icon {
        width: 22px;
        height: 22px;
    }
    
    .patreon-text {
        font-size: 12px;
    }
}

.arthur-request-btn {
    background: #f59e0b !important;
}

.arthur-request-btn:hover {
    background: #d97706 !important;
}

.help-btn {
    background: #10b981 !important;
}

.help-btn:hover {
    background: #059669 !important;
}

img[src="video/lockerschoolundress.gif"] {
    width: 50%;
    height: auto;
    max-width: 400px;
    object-fit: contain;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Dla zdjęcia benchschool.jpg - połowa wielkości */
img[src="img/benchschool.jpg"] {
    width: 50%;
    height: auto;
    max-width: 400px;
    object-fit: contain;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.masturbate-btn {
    background: #ec489a !important;
}

.masturbate-btn:hover {
    background: #db2777 !important;
}

.remembrance-thumb {
    width: 60px;
    height: 60px;
    border-radius: 12px;
    overflow: hidden;
    flex-shrink: 0;
    background: #1a1a2a;
}

.remembrance-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.remembrance-item {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #2a2a3a;
    padding: 12px;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid #3a3a4a;
}

.remembrance-item:hover {
    background: #3a3a4a;
    transform: translateY(-3px);
    border-color: #ec489a;
}

.remembrance-info {
    flex: 1;
}

.remembrance-title {
    font-weight: bold;
    color: #f59e0b;
    margin-bottom: 4px;
}

.remembrance-desc {
    font-size: 11px;
    color: #aaa;
}

.remembrance-play {
    font-size: 20px;
    color: #4ade80;
}

/* Efekt hover na avatarze - płynne przejście */
.profile-image {
    transition: all 0.3s ease-in-out;
}

.profile-image:hover {
    content: url("img/me.jpg");
    transform: scale(1.15);
    filter: brightness(1.05);
    
}

.stranger-ask-btn {
    background: #f59e0b !important;
}

.stranger-ask-btn:hover {
    background: #d97706 !important;
}

.sure-btn {
    background: #ef4444 !important;
}

.sure-btn:hover {
    background: #dc2626 !important;
}

.control-btn {
    background: #ec489a !important;
}

.control-btn:hover {
    background: #db2777 !important;
}

.how-about-btn {
    background: #8b5cf6 !important;
}

.how-about-btn:hover {
    background: #7c3aed !important;
}

.under-desk-btn {
    background: #f59e0b !important;
}

.under-desk-btn:hover {
    background: #d97706 !important;
}

.sit-across-btn {
    background: #10b981 !important;
}

.sit-across-btn:hover {
    background: #059669 !important;
}

/* SIDEBAR
/* ====================== */

.sidebar-collapse {
    display: none;
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 30px;
    height: 64px;
    background: linear-gradient(135deg, #ec489a, #be185d);
    border: none;
    border-radius: 0 16px 16px 0;
    color: white;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: width 0.2s ease, background 0.2s ease;
    /* Above the sidebar (z 1000) and main content so it's always tappable */
    z-index: 1100;
    box-shadow: 2px 2px 10px rgba(0,0,0,0.35);
    align-items: center;
    justify-content: center;
}

.sidebar-collapse:hover {
    background: linear-gradient(135deg, #db2777, #9d174d);
    width: 36px;
}

/* Na desktopie - sidebar zawsze widoczny, strzałka ukryta */
@media (min-width: 769px) {
    .sidebar-collapse {
        display: none !important;
    }
    
    #sidebar {
        left: 0 !important;
        position: relative;
        transform: none !important;
    }
}

/* Na małych ekranach */
@media (max-width: 768px) {
    .sidebar-collapse {
        display: flex;
    }
    
    #game-container {
        display: flex;
        flex-direction: row;
        position: relative;
        overflow-x: hidden;
    }
    
    /* Sidebar - przesuwany */
    #sidebar {
        position: fixed;
        top: 0;
        left: -300px;
        width: 280px;
        height: 100vh;
        background: #0f0f1a;
        z-index: 1000;
        transition: left 0.3s ease-in-out;
        overflow-y: auto;
        padding: 20px 15px 30px 15px;
        box-shadow: 2px 0 15px rgba(0,0,0,0.4);
        border-right: 2px solid #2a2a3a;
    }
    
    /* Zapewnij, że wszystkie elementy w sidebarze są na odpowiednim z-index */
    #sidebar * {
        z-index: auto;
    }
    
    /* Sidebar otwarty */
    #sidebar.sidebar-open {
        left: 0;
    }
    
    /* Główna treść */
    #main-view {
        width: 100%;
        margin-left: 0;
        padding: 20px 15px;
    }
    
    /* Dostosowanie obrazków */
    .event-image, .school-image, .city-image, .bedroom-image, 
    .livingroom-image, .gym-image, .park-image, .train-image,
    .classroom-image, .mall-image, .bathroom-image {
        max-height: 220px;
        object-fit: cover;
    }
    
    /* Modal telefonu */
    .modal-content {
        width: 95%;
        max-width: 95%;
        margin: 20px auto;
        max-height: 90vh;
    }
}

/* ========== RELATIONSHIP HINTS ========== */
.relationship-row { cursor: pointer; transition: background 0.15s; }
.relationship-row:hover { background: #1e1e30; }
.rel-hint-chevron {
    font-size: 9px;
    color: #6b7280;
    margin-left: 4px;
    display: inline-block;
    vertical-align: middle;
}
.relationship-hint-panel {
    display: none;
    padding: 10px 16px 12px;
    background: #0b0b18;
    border-bottom: 1px solid #2a2a3a;
}
.relationship-hint-panel.open { display: block; }
.rel-hint-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #ec489a;
    margin-bottom: 5px;
}
.rel-hint-text {
    font-size: 12px;
    color: #ccc;
    line-height: 1.5;
}
.rel-hint-text.done { color: #4ade80; font-style: italic; }
.rel-hint-text.locked { color: #6b7280; }

/* Dla bardzo małych ekranów */
@media (max-width: 480px) {
    #main-view {
        padding: 15px 10px;
    }
    
    .sidebar-collapse {
        width: 28px;
        height: 58px;
        font-size: 16px;
    }

    .sidebar-collapse:hover {
        width: 34px;
    }
    
    .bedroom-actions,
    .livingroom-actions,
    .city-actions,
    .school-actions,
    .mall-actions,
    .classroom-actions,
    .gym-actions,
    .park-actions,
    .event-actions,
    .bathroom-actions {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    
    .bedroom-action-btn,
    .livingroom-action-btn,
    .city-action-btn,
    .school-action-btn,
    .mall-action-btn,
    .classroom-action-btn,
    .gym-action-btn,
    .park-action-btn,
    .event-action-btn,
    .bathroom-action-btn {
        width: 100%;
        text-align: center;
    }
    
    .outfit-options {
        grid-template-columns: 1fr;
    }
}

img[src="img/buspus.jpg"] {
    object-fit: cover;
    object-position: center 75%;
    height: 500px; /* lub inna wysokość */
}

.event-action-btn.reverse-btn {
    background: #a855f7;
    color: white;
}

.event-action-btn.reverse-btn:hover {
    background: #9333ea;
}

/* ========== EFEKTY DŹWIĘKOWE DLA SOPHIE ========== */

.fucking-moan {
    position: relative;
    animation: moanSound 0.3s ease-in-out;
}

.fucking-moan::before {
    content: "♡";
    position: absolute;
    left: -20px;
    top: 50%;
    transform: translateY(-50%);
    color: #ff6b9d;
    font-size: 18px;
    animation: heartBeat 0.5s ease-in-out infinite;
}

.fucking-moan::after {
    content: "♡";
    position: absolute;
    right: -20px;
    top: 50%;
    transform: translateY(-50%);
    color: #ff6b9d;
    font-size: 18px;
    animation: heartBeat 0.5s ease-in-out infinite 0.2s;
}

/* Klasa dla tekstu moaning */
.fucking-text {
    color: #ff6b9d;
    font-weight: bold;
    text-shadow: 0 0 5px #ff3366;
    animation: moanText 0.5s ease-in-out infinite;
    display: inline-block;
}

/* Intensywniejsze moaning */
.fucking-text-heavy {
    color: #ff3366;
    font-weight: bold;
    text-shadow: 0 0 8px #ff0066;
    animation: moanTextHeavy 0.25s ease-in-out infinite;
    display: inline-block;
}

/* Efekt dźwiękowy - wibracja tekstu */
@keyframes moanText {
    0% { transform: scale(1); opacity: 0.7; letter-spacing: 0px; }
    50% { transform: scale(1.05); opacity: 1; letter-spacing: 1px; }
    100% { transform: scale(1); opacity: 0.7; letter-spacing: 0px; }
}

@keyframes moanTextHeavy {
    0% { transform: scale(1) rotate(0deg); opacity: 0.5; }
    25% { transform: scale(1.08) rotate(1deg); opacity: 1; }
    50% { transform: scale(1.08) rotate(-1deg); opacity: 1; }
    75% { transform: scale(1.08) rotate(1deg); opacity: 1; }
    100% { transform: scale(1) rotate(0deg); opacity: 0.5; }
}

@keyframes heartBeat {
    0% { transform: translateY(-50%) scale(1); opacity: 0.5; }
    50% { transform: translateY(-50%) scale(1.3); opacity: 1; }
    100% { transform: translateY(-50%) scale(1); opacity: 0.5; }
}

@keyframes sceneShake {
    0% { transform: translateX(0px); }
    25% { transform: translateX(2px); }
    50% { transform: translateX(-2px); }
    75% { transform: translateX(2px); }
    100% { transform: translateX(0px); }
}

@keyframes tremble {
    0%   { transform: translate(0, 0) rotate(0deg); }
    15%  { transform: translate(-3px, 1px) rotate(-1deg); }
    30%  { transform: translate(4px, -2px) rotate(1.5deg); }
    45%  { transform: translate(-2px, 3px) rotate(-0.8deg); }
    60%  { transform: translate(4px, -1px) rotate(1.2deg); }
    75%  { transform: translate(-3px, 2px) rotate(-1.5deg); }
    90%  { transform: translate(2px, -2px) rotate(0.6deg); }
    100% { transform: translate(0, 0) rotate(0deg); }
}

/* Efekt dla dymków myśli Sophie podczas seksu */
.sophie-thrust-thought {
    color: #ff6b9d;
    animation: thrustThought 0.6s ease-in-out infinite;
    display: inline-block;
    border-left: 3px solid #ff3366;
    padding-left: 10px;
}

@keyframes thrustThought {
    0% { opacity: 0.6; transform: translateY(0px); }
    50% { opacity: 1; transform: translateY(-3px); }
    100% { opacity: 0.6; transform: translateY(0px); }
}

.event-container {
    max-width: 900px;  /* lub 1000px, 1200px */
    width: 90%;
    margin: 0 auto;
}

/* Jeszcze szersze na większych ekranach */
@media (min-width: 1200px) {
    .event-container {
        max-width: 1100px;
        width: 85%;
    }
}

/* Dla bardzo dużych ekranów */
@media (min-width: 1600px) {
    .event-container {
        max-width: 1300px;
        width: 80%;
    }
}

@keyframes phonePulsePurple {
    0% {
        box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(139, 92, 246, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(139, 92, 246, 0);
    }
}

#phone-btn.arthur-gift {
    animation: phonePulsePurple 1.5s infinite;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
}

/* Animacja pisania (3 kropeczki) */
.typing-indicator {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 10px 12px;
    background: #2a2a3a;
    border-radius: 16px;
    width: fit-content;
}

.typing-indicator span {
    width: 8px;
    height: 8px;
    background: #aaa;
    border-radius: 50%;
    animation: typingBounce 1.4s infinite ease-in-out;
}

.typing-indicator span:nth-child(1) { animation-delay: 0s; }
.typing-indicator span:nth-child(2) { animation-delay: 0.2s; }
.typing-indicator span:nth-child(3) { animation-delay: 0.4s; }

@keyframes typingBounce {
    0%, 60%, 100% {
        transform: translateY(0);
        opacity: 0.4;
    }
    30% {
        transform: translateY(-8px);
        opacity: 1;
    }
}

/* ========== FLASH EFFECT ========== */
.flash-effect {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: white;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.1s ease;
}

.flash-effect.active {
    animation: cameraFlash 0.3s ease-out forwards;
}

@keyframes cameraFlash {
    0% {
        opacity: 0;
    }
    10% {
        opacity: 0.9;
    }
    30% {
        opacity: 0.5;
    }
    60% {
        opacity: 0.1;
    }
    100% {
        opacity: 0;
        display: none;
    }
}

/* Lake image full size */
.lake-image-full {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 500px;
    object-fit: contain;
    border-radius: 16px;
    margin: 0 auto 20px auto;
    border: 1px solid #ec489a;
    background: #1a1a2a;
    display: block;
}

/* Responsywność */
@media (max-width: 600px) {
    .lake-image-full {
        max-height: 350px;
    }
}

@media (max-width: 480px) {
    .lake-image-full {
        max-height: 280px;
    }
}

/* Relationships Modal - prosty */
.relationships-modal {
    width: 380px;
    max-width: 92vw;
    background: #1a1a2a;
    border: 1px solid #ec489a;
}

.relationships-list {
    padding: 15px;
    max-height: 60vh;
    overflow-y: auto;
}

.relationship-end {
    color: #f59e0b;
    font-size: 10px;
    margin-left: 8px;
    padding: 2px 6px;
    background: rgba(245, 158, 11, 0.15);
    border-radius: 12px;
    border: 1px solid rgba(245, 158, 11, 0.3);
    white-space: nowrap;
}

.relationship-row:last-child {
    border-bottom: none;
}

.relationship-row:last-child {
    border-bottom: none;
}

.status-love {
    color: #ec489a;
}

.status-friend {
    color: #4ade80;
}

.status-roommate {
    color: #f59e0b;
}

.relationship-avatar-small {
    width: 50px;
    height: 50px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid #ec489a;
    flex-shrink: 0;
}

.relationship-name {
    width: 70px;
    font-weight: bold;
    font-size: 15px;
    flex-shrink: 0;
}

.relationship-status {
    flex: 1;
    font-size: 11px;
    text-align: left;
}

.relationship-end-cell {
    width: 70px;
    text-align: right;
    flex-shrink: 0;
    white-space: nowrap;
}

.relationship-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid #2a2a3a;
}

.relationships-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 2px solid #ec489a;
    margin-bottom: 5px;
    font-size: 12px;
    color: #aaa;
}

.header-avatar {
    width: 50px;
    flex-shrink: 0;
}

.relationship-more {
    color: #4ade80;
    font-size: 10px;
    padding: 2px 6px;
    background: rgba(74, 222, 128, 0.15);
    border-radius: 12px;
    border: 1px solid rgba(74, 222, 128, 0.3);
    white-space: nowrap;
}

.header-name {
    width: 80px;
    text-align: left;
    flex-shrink: 0;
}

.header-status {
    flex: 1;
    text-align: left;
}

.header-end {
    width: 70px;
    text-align: right;
    flex-shrink: 0;
}

/* ========== PHONE BUTTON SHAKE ANIMATION (LIGHT) ========== */
@keyframes phoneShake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-1px); }
    100% { transform: translateX(0); }
}

@keyframes cameraGlow {
    0%, 100% { text-shadow: 0 0 4px rgba(255,255,255,0.3); }
    50% { text-shadow: 0 0 14px rgba(255,255,255,1), 0 0 24px rgba(255,255,255,0.5); }
}

.full-image {
    width: 40%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    border-radius: 16px;
    margin: 0 auto 20px auto;
    display: block;
}

.supporters-list {
    padding: 0 15px 15px 15px;
    max-height: 350px;
    overflow-y: auto;
    text-align: center;
}

.supporter-item {
    padding: 12px;
    background: #2a2a3a;
    border-radius: 12px;
    margin-bottom: 8px;
    color: #f59e0b;
    font-size: 14px;
    border: 1px solid #3a3a4a;
    text-align: center;
}

.supporter-empty {
    text-align: center;
    padding: 40px 20px;
    color: #6a6a7a;
    font-size: 14px;
}

#supporter-search:focus {
    border-color: #ec489a;
    box-shadow: 0 0 5px rgba(236, 72, 154, 0.3);
}   

@keyframes starBreath {
    0% {
        transform: scale(1);
        opacity: 0.8;
        text-shadow: 0 0 0px rgba(255, 215, 0, 0);
    }
    50% {
        transform: scale(1.08);
        opacity: 1;
        text-shadow: 0 0 6px rgba(255, 215, 0, 0.6);
    }
    100% {
        transform: scale(1);
        opacity: 0.8;
        text-shadow: 0 0 0px rgba(255, 215, 0, 0);
    }
}

.app-icon[data-app="supporters"] div {
    animation: starBreath 1.5s ease-in-out infinite;
    display: inline-block;
}

/* Opcjonalnie - dodatkowy efekt z gwiazdkami w tle przy hover */
.app-icon[data-app="supporters"]:hover {
    position: relative;
    overflow: hidden;
}

.app-icon[data-app="supporters"]:hover div {
    animation: spin infinite 2.5s linear;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* ========== STYLE DLA FILMIKÓW W SLEEP BJ SEKWENCJI ========== */

.sleep-bj-video {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: contain;
    border-radius: 16px;
    margin: 0 auto 20px auto;
    background: #000;
    display: block;
}

/* Dla responsywności na mniejszych ekranach */
@media (max-width: 768px) {
    .sleep-bj-video {
        max-height: 350px;
    }
}

@media (max-width: 480px) {
    .sleep-bj-video {
        max-height: 280px;
    }
}

/* ========== ZOOM-IN DLA TEGO JEDNEGO FILMIKU ========== */

.remembrance-video-stretch {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% center;
    transform: scale(1.7);
    border-radius: 12px;
}